From 3c2eb053d643f9812f3dce86553fafdfb5971d28 Mon Sep 17 00:00:00 2001 From: Bastien Nocera Date: Fri, 16 Sep 2011 15:04:44 +0100 Subject: [PATCH] link-button: Reset the mouse cursor when destroyed If clicking on a link destroys the link button, and keeps the same GdkWindow then the cursor stays as a hand in the rest of the interface. https://bugzilla.gnome.org/show_bug.cgi?id=659247 --- gtk/gtklinkbutton.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/gtk/gtklinkbutton.c b/gtk/gtklinkbutton.c index cafa3aaacb..bd2ca65d80 100644 --- a/gtk/gtklinkbutton.c +++ b/gtk/gtklinkbutton.c @@ -106,6 +106,7 @@ static gboolean gtk_link_button_button_press (GtkWidget *widget, static void gtk_link_button_clicked (GtkButton *button); static gboolean gtk_link_button_popup_menu (GtkWidget *widget); static void gtk_link_button_style_updated (GtkWidget *widget); +static void gtk_link_button_unrealize (GtkWidget *widget); static gboolean gtk_link_button_enter_cb (GtkWidget *widget, GdkEventCrossing *event, gpointer user_data); @@ -153,6 +154,7 @@ gtk_link_button_class_init (GtkLinkButtonClass *klass) widget_class->button_press_event = gtk_link_button_button_press; widget_class->popup_menu = gtk_link_button_popup_menu; widget_class->style_updated = gtk_link_button_style_updated; + widget_class->unrealize = gtk_link_button_unrealize; container_class->add = gtk_link_button_add; @@ -393,6 +395,14 @@ set_hand_cursor (GtkWidget *widget, g_object_unref (cursor); } +static void +gtk_link_button_unrealize (GtkWidget *widget) +{ + set_hand_cursor (widget, FALSE); + + GTK_WIDGET_CLASS (gtk_link_button_parent_class)->unrealize (widget); +} + static void popup_menu_detach (GtkWidget *attach_widget, GtkMenu *menu) -- 2.30.2